Significant advances in industrial process control technology have vastly improved all aspects of factory and plant operation. Before the introduction of today's modern industrial process control systems, industrial processes were operated/controlled by humans and rudimentary mechanical controls. As a consequence, the complexity and degree of control over a process was limited by the speed with which one or more people could ascertain a present status of various process state variables, compare the current status to a desired operating level, calculate a corrective action (if needed), and implement a change to a control point to affect a change to a state variable.
Improvements to process control technology have enabled vastly larger and more complex industrial processes to be controlled via programmed control processors. Control processors execute control programs that read process status variables, execute control algorithms based upon the status variable data and desired set point information to render output values for the control points in industrial processes. Such control processors and programs support a substantially self-running industrial process (once set points are established).
Notwithstanding the ability of industrial processes to operate under the control of programmed process controllers at previously established set points without intervention, supervisory control and monitoring of control processors and their associated processes is desirable. Such oversight is provided by both humans and higher-level control programs at an application/human interface layer of a multilevel process control network. Such oversight is generally desired to verify proper execution of the controlled process under the lower-level process controllers and to configure the set points of the controlled process.
One of many challenges facing the designers/managers of often highly complex, distributed process control systems is to properly load/maintain required software onto each one of a plurality of supervisory-level computers executing a portion of a distributed application. A challenge faced by the managers of such systems is the potentially significant distances between the various computer devices (e.g., personal computers) executing the various portions of the distributed supervisory process control application. Another challenge to the software loading process is the sheer volume of executables that are transferred to the distributed computer devices. Yet another complication is the potential existence, in cases where a service pack is to be deployed, of previously installed components on the target personal computer systems.
Once installed, manufacturing/process control systems are modified due to changes in the process control devices and the processes themselves. Thus, it is important in such instances to provide a means for quickly configuring/re-configuring without touching unchanged portions of the system. It is also important to provide a means for making such changes while minimizing disruptions to the operation of the industrial process—e.g., minimizing the time that the process stands idle.
In view of the interest and desirability to continually improve supervisory process control and manufacturing information systems, there is a strong desire to not be locked into a single architecture for a supervisory process control and manufacturing information system. Process control systems change, and it is desirable to have higher level systems that adapt to such changes regardless of their magnitude. Furthermore, less flexible supervisory process control and manufacturing information system offerings require designers of process control installations to take into consideration the long-term requirements of an application because of the relative inflexibility of the application to modifications once it is installed.
However, such application inflexibility is undesirable in the conservative industrial control systems market. The process control industry tends to pilot, and often the designers are not fully aware of the full extent and form of the automation that will ultimately be incorporated in a final installation. Later in the life of a plant, when new functionality is added the new control system components leverage or merge existing systems. In such instances where the process control system has changed significantly, there are advantages to incorporating a different architecture into the installed supervisory process control application.
Not all changes to a system occur on a grand scale. On some occasions routine maintenance results in the detection of excessive loading on a particular computer system while other capable computer systems are under utilized. In such instances, portions of a distributed supervisory process control and manufacturing information application are relocated from the overloaded computer system to the under utilized ones. However, relocating an object disrupts communications links between the relocated objects and other objects that had previously referenced the object in its former location. Thus, the advantages of reconfiguring an overloaded computing system or component thereof must be weighed against the degree of disruption to existing processes that rely upon information and/or services provided by an object that is targeted for relocation. One potential solution, short of shutting down the system, is to delay relocating an object until all “clients” of an object to release their connections/references to the targeted object. However, such a method requires a centralized reference counter that adds to complexity to network communications. Furthermore, there is no assurance that a zero connection/reference count will be reached—especially if it is possible for the system to miss a “release” message from a client. A manager should not have to wait for a potentially indeterminate time to execute relocating an object—or a large number of objects—to remedy a load imbalance or some other basis for reconfiguring an existing system.